import Foundation
import ServiceStack
public class ProcessProjectRequestMessage : Codable
{
public var instanceId:String
public var projectRequest:ProjectRequestMessage
required public init(){}
}
public class ProjectRequestMessage : Codable
{
public var header:Header
public var projectReference:Reference
public var includeHousingTypes:Bool
public var includeConstructionBlocks:Bool
public var includeConstructionNumbers:Bool
public var includeDocuments:Bool
public var includePurchaseContracts:Bool
required public init(){}
}
public class Header : Codable
{
public var messageID:String
public var timestamp:Date
public var sender:Party
public var recipient:Party
//requestMessageID:Object ignored. Type could not be extended in Swift
required public init(){}
}
public class Party : Codable
{
public var title:String
public var code:String
public var version:String
public var environment:Environment
required public init(){}
}
public class Environment : Codable
{
public var title:String
public var code:String
required public init(){}
}
public class Reference : Codable
{
public var globalID:String
public var title:String
required public init(){}
}
public class ProjectResponseMessage : Codable
{
public var header:Header
public var projectReference:Reference
public var project:Project
public var housingTypes:[HousingType] = []
public var constructionBlocks:[ConstructionBlock] = []
public var constructionNumbers:[ConstructionNumber] = []
public var documents:[Document] = []
public var purchaseContracts:[PurchaseContract] = []
required public init(){}
}
public class Project : Codable
{
public var globalID:String
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
public var code:String
public var name:String
public var description1:String
public var description2:String
public var address:Address
public var mailingAddress:MailingAddress
public var projectCategoryReference:Reference
public var projectTypeReference:Reference
public var projectStatusReference:Reference
public var startDate:Date?
public var endDate:Date?
public var completionDate:Date?
public var inactive:Bool
public var website:String
public var isTemplateProject:Bool
public var customFields:[CustomField] = []
required public init(){}
}
public class Address : Codable
{
public var addressLine1:String
public var addressLine2:String
public var houseNumber:String
public var houseNumberSuffix:String
public var postalCode:String
public var city:String
public var country:Reference
required public init(){}
}
public class MailingAddress : Codable
{
public var poBox:String
public var postalCode:String
public var city:String
public var country:Reference
required public init(){}
}
public class CustomField : Codable
{
public var name:String
public var value:String
required public init(){}
}
public class HousingType : Codable
{
public var globalID:String
public var projectReference:Reference
public var code:String
public var Description:String
public var customFields:[CustomField] = []
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
required public init(){}
}
public class ConstructionBlock : Codable
{
public var globalID:String
public var projectReference:Reference
public var code:String
public var Description:String
public var customFields:[CustomField] = []
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
required public init(){}
}
public class ConstructionNumber : Codable
{
public var globalID:String
public var projectReference:Reference
public var housingTypeReference:Reference
public var constructionBlockReference:Reference
public var code:String
public var Description:String
public var address:Address
public var rentalHouse:Bool
public var guaranteeCertificateNumber:String
public var inactive:Bool
public var customFields:[CustomField] = []
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
public var viewingDate:Date?
public var viewingDateSpecified:Bool
public var deliveryDate:Date?
public var deliveryDateSpecified:Bool
required public init(){}
}
public class Document : ICustomProperties, Codable
{
public var id:String
public var rootDocumentID:String
public var registrationprofileID:String
public var title:String
public var fullTitle:String
public var number:String
public var version:String
public var externalNumber:String
public var externalVersion:String
public var internalNumber:String
public var internalInvoiceNumber:String
public var personID:Int
public var relationID:Int
public var relationTitle:String
public var projectID:Int
public var projectTitle:String
public var `extension`:String
public var date:Date?
public var commentsCount:Int
public var hasComments:Bool
public var hasPreview:Bool
public var extraField:String
public var isFavorite:Bool
public var documentcategoryText:String
public var fileSize:Int?
public var fileDate:Date?
public var hash:String
public var hashType:String
public var fileUrl:String
public var standardDocumentUrl:String
public var isCorporateIdentity:Bool
public var userTitle:String
public var isFrozen:Bool
public var internalCompanyID:Int
public var directUrl:String
public var allowDigitalSigningOnlyOnPrimaryVersions:Bool
public var isPrimaryVersion:Bool
public var fileExtension:String
public var customProperties:[String:Object] = [:]
required public init(){}
}
public class PurchaseContract : Codable
{
public var globalID:String
public var code:String
public var Description:String
public var projectReference:Reference
public var productCode:String
public var relation:Relation
public var inactive:Bool
public var customFields:[CustomField] = []
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
required public init(){}
}
public class Relation : Codable
{
public var globalID:String
public var nameLine1:String
public var nameLine2:String
public var address:Address
public var mailingAddress:MailingAddress
public var telephone:String
public var mobile:String
public var email:String
public var iban:String
public var bankAccountNumber:String
public var website:String
public var inactive:Bool
public var customFields:[CustomField] = []
public var creationDate:Date?
public var createdBy:String
public var modifiedDate:Date?
public var modifiedBy:String
required public init(){}
}
Swift ProcessProjectRequestMessage DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/ProcessProjectRequestMessage HTTP/1.1
Host: kpm_digiofficeapigateway.tbi.nl
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ProjectRequest:
{
Header:
{
MessageID: String,
Timestamp: 0001-01-01,
Sender:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
Recipient:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
RequestMessageID: {}
},
ProjectReference:
{
GlobalID: String,
Title: String
},
IncludeHousingTypes: False,
IncludeConstructionBlocks: False,
IncludeConstructionNumbers: False,
IncludeDocuments: False,
IncludePurchaseContracts: False
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Header:
{
MessageID: String,
Timestamp: 0001-01-01,
Sender:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
Recipient:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
RequestMessageID: {}
},
ProjectReference:
{
GlobalID: String,
Title: String
},
Project:
{
GlobalID: String,
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String,
Code: String,
Name: String,
Description1: String,
Description2: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
MailingAddress:
{
POBox: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
ProjectCategoryReference:
{
GlobalID: String,
Title: String
},
ProjectTypeReference:
{
GlobalID: String,
Title: String
},
ProjectStatusReference:
{
GlobalID: String,
Title: String
},
StartDate: 0001-01-01,
EndDate: 0001-01-01,
CompletionDate: 0001-01-01,
Inactive: False,
Website: String,
IsTemplateProject: False,
CustomFields:
[
{
Name: String,
Value: String
}
]
},
HousingTypes:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
ConstructionBlocks:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
ConstructionNumbers:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
HousingTypeReference:
{
GlobalID: String,
Title: String
},
ConstructionBlockReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
RentalHouse: False,
GuaranteeCertificateNumber: String,
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String,
ViewingDate: 0001-01-01,
ViewingDateSpecified: False,
DeliveryDate: 0001-01-01,
DeliveryDateSpecified: False
}
],
Documents:
[
{
GlobalID: String,
RootDocumentID: String,
Code: String,
Subject: String,
VersionNumber: String,
NewestVersion: False,
RelationReference:
{
GlobalID: String,
Title: String
},
DocumentTypeReference:
{
GlobalID: String,
Title: String
},
ProjectReference:
{
GlobalID: String,
Title: String
},
ConstructionBlockReference:
{
GlobalID: String,
Title: String
},
ConstructionNumberReference:
{
GlobalID: String,
Title: String
},
HousingTypeReference:
{
GlobalID: String,
Title: String
},
Floor: 0,
FloorSpecified: False,
DeletedDate: 0001-01-01,
DeletedDateSpecified: False,
File:
{
Type: String,
Name: String,
Size: 0,
Content: String,
ModifiedDate: 0001-01-01
},
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
PurchaseContracts:
[
{
GlobalID: String,
Code: String,
Description: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
ProductCode: String,
Relation:
{
GlobalID: String,
NameLine1: String,
NameLine2: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
MailingAddress:
{
POBox: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
Telephone: String,
Mobile: String,
Email: String,
IBAN: String,
BankAccountNumber: String,
Website: String,
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
},
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
]
}